#ifndef GRAPHICS_CAMERA_H
#define GRAPHICS_CAMERA_H

#include "math/types.h"
using namespace math;

#include "graphics/basic.h"
#include "graphics/view_frustrum.h"

namespace graphics{

class Camera{
    Camera(): frustrum_(view_, projection_) {}

    int Update(){
        return 0;
    }

    const ViewFrustrum & GetFrustrum() const {return frustrum_;}
    bool Overlaps(BoundingVolume * volume){ return volume->Overlaps(frustrum_);}

private:
    float (*GetClippedRadius(const Point & center, const Point & test_point));
    void ClipPosition(){
        
    }
    
    Matrix view_, projection_;    
    ViewFrustrum frustrum_;

    Point center_;


};

}//namespace graphics
#endif //GRAPHICS_CAMERA_H